package cn.kgc.springcloud.nacos.client;

import cn.kgc.springcloud.nacos.entity.Role;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @author: mosin
 * @version: v1.0  2022/8/18
 * 权限服务的客户端    使用该客户端实现通信  负载均衡的策略 轮循
 */
@FeignClient(value = "PERMISSIONCLIENT") // 实现从注册中心根据服务名拉取请求地址
public interface PermissionClient {
    // http://localhost:8854/p/t1
    @RequestMapping("/p/t1")
    String test1();

    //http://localhost:8854/p/t2?roleId=1      @RequestParam   声明请求时参数的携带方式   ？形式进行参数的传递
    @RequestMapping("/p/t2")
    String test2(@RequestParam("roleId") Integer roleId);

    // 根据权限的id  查询权限信息  http://localhost:8854/p/t3/10
    @RequestMapping("/p/t3/{pId}")   //restful风格的参数传递
    String test3(@PathVariable Integer pId);

    // 如何接收对象类型的参数
    @RequestMapping("/p/t4")
    public String test4(@RequestBody Role role);

    @RequestMapping("/p/t5")
    String test5(@RequestParam Integer[] ids);

    @RequestMapping("/p/t6")
    Role test6(@RequestParam Integer id);

}
